<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
<meta name="viewport"
      content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">

    <meta name="author" content="Liux">





<title>Linux的日志系统简介 | 爱羊羊，爱生活。</title>



    <link rel="icon" href="/favicon.ico">




    <!-- stylesheets list from _config.yml -->
    
    <link rel="stylesheet" href="/css/style.css">
    



    <!-- scripts list from _config.yml -->
    
    <script src="/js/script.js"></script>
    
    <script src="/js/tocbot.min.js"></script>
    



    
    
        
    


</head>
<body>
    <div class="wrapper ">
        <header>
    <nav class="navbar">
        <div class="container">
            <div class="navbar-header header-logo">

<a href="/">卷首</a>

</div>

            <div class="menu navbar-right">
                
                    <a class="menu-item" href="/archives">文章</a>
                
                    <a class="menu-item" href="/category">分类</a>
                
                    <a class="menu-item" href="/tag">标签</a>
                
            </div>

        </div>
    </nav>

    
    <nav class="navbar-mobile" id="nav-mobile">
        <div class="container">
            <div class="navbar-header">
                <div>
                    <a href="/">卷首</a><a id="mobile-toggle-theme">·&nbsp;Light</a>
                </div>
                <div class="menu-toggle" onclick="mobileBtn()">&#9776; Menu</div>
            </div>
            <div class="menu" id="mobile-menu">
                
                    <a class="menu-item" href="/archives">文章</a>
                
                    <a class="menu-item" href="/category">分类</a>
                
                    <a class="menu-item" href="/tag">标签</a>
                
            </div>
        </div>
    </nav>

</header>
<script>
    var mobileBtn = function f() {
        var toggleMenu = document.getElementsByClassName("menu-toggle")[0];
        var mobileMenu = document.getElementById("mobile-menu");
        if(toggleMenu.classList.contains("active")){
           toggleMenu.classList.remove("active")
            mobileMenu.classList.remove("active")
        }else{
            toggleMenu.classList.add("active")
            mobileMenu.classList.add("active")
        }
    }
</script>

	<div class="main">
            <div class="container">
    
    
        <div class="post-toc">
    <div class="tocbot-list">
    </div>
    <div class="tocbot-list-menu">
        <a class="tocbot-toc-expand" onclick="expand_toc()">展开</a>
        <a onclick="go_top()">到顶</a>
        <a onclick="go_bottom()">到底</a>
    </div>
</div>

<script>
    document.ready(
        function () {
            tocbot.init({
                tocSelector: '.tocbot-list',
                contentSelector: '.post-content',
                headingSelector: 'h1, h2, h3, h4, h5',
                collapseDepth: 1,
                orderedList: false,
                scrollSmooth: true,
            })
        }
    )

    function expand_toc() {
        var b = document.querySelector(".tocbot-toc-expand");
        tocbot.init({
            tocSelector: '.tocbot-list',
            contentSelector: '.post-content',
            headingSelector: 'h1, h2, h3, h4, h5',
            collapseDepth: 6,
            orderedList: false,
            scrollSmooth: true,
        });
        b.setAttribute("onclick", "collapse_toc()");
        b.innerHTML = "收起"
    }

    function collapse_toc() {
        var b = document.querySelector(".tocbot-toc-expand");
        tocbot.init({
            tocSelector: '.tocbot-list',
            contentSelector: '.post-content',
            headingSelector: 'h1, h2, h3, h4, h5',
            collapseDepth: 1,
            orderedList: false,
            scrollSmooth: true,
        });
        b.setAttribute("onclick", "expand_toc()");
        b.innerHTML = "展开"
    }

    function go_top() {
        window.scrollTo(0, 0);
    }

    function go_bottom() {
        window.scrollTo(0, document.body.scrollHeight);
    }

</script>

    

    
    <article class="post-wrap">
        <header class="post-header">
            <h1 class="post-title">Linux的日志系统简介</h1>
            
                <div class="post-meta">
                    
                        <span class="post-time">
                        <a href="#">2019-11-20&nbsp;&nbsp;22:20:00</a>
                        </span>
                    
                    
                </div>
            
        </header>

        <section class="post-tags">
            <div>
                <span class="tag">
                    
                    
                        <a href="/tags/linux/"> linux</a>
                    
                        <a href="/tags/logs/"> logs</a>
                    
                        <a href="/tags/syslog/"> syslog</a>
                    
                        
                </span>
            </div>
        </section>

        <div class="post-content">
            <p><strong>日志系统说白了就是消息记录系统</strong>。Linux的日志系统遵循 Syslog 标准。</p>
<blockquote>
<p>Syslog 是一种用来在互联网协议（TCP/IP）的网络中传递记录档消息的标准。一般被称为系统日志或系统记录，这个词汇常用来指涉实际的 syslog 协议，或者那些提交syslog消息的应用程序或数据库。<br>– 来自<a href="https://zh.wikipedia.org/wiki/Syslog" target="_blank" rel="noopener">维基百科</a></p>
</blockquote>
<p>日志系统记录Linux在运行过程中出现的各种事件消息，对追溯并解决使用中出现的问题、查看系统的运行状态、追踪网络攻击的非法入侵都非常有用，做为使用Linux系统的用户，知道Linux日志文件的存放位置，怎样查看和管理日志文件是必须要了解和掌握的。</p>
<p>很多应用程序使用Syslog标准将消息写入日志系统，Linux的日志系统由一组遵循 Syslog 标准的服务程序（比如<code>syslog</code>, <code>rsyslog</code>, 和 <code>syslog-ng</code>）所组成，它们接收并存储应用程序发出的消息并保存到日志文件中，这些消息都带有设备标识（Facility）和级别（priority），日志服务则根据设备标识和优先级将消息分门别类进行存放。</p>
<h2 id="配置文件位置"><a href="#配置文件位置" class="headerlink" title="配置文件位置"></a>配置文件位置</h2><p>Linux中常用的日志服务程序的配置文件的位置如下：</p>
<table>
<thead>
<tr>
<th>日志服务</th>
<th>主配置文件</th>
</tr>
</thead>
<tbody><tr>
<td>syslog</td>
<td>/etc/syslog.conf</td>
</tr>
<tr>
<td>rsyslog</td>
<td>/etc/rsyslog.conf</td>
</tr>
<tr>
<td>syslog-ng</td>
<td>/etc/syslog-ng/syslog-ng.conf</td>
</tr>
</tbody></table>
<h2 id="日志文件位置"><a href="#日志文件位置" class="headerlink" title="日志文件位置"></a>日志文件位置</h2><p>Linux系统的日志文件的保存位置一般在 <code>/var/log</code>目录下，一些常见的日志文件如下：</p>
<table>
<thead>
<tr>
<th>文件名</th>
<th>内容</th>
</tr>
</thead>
<tbody><tr>
<td>messages or syslog</td>
<td>系统消息</td>
</tr>
<tr>
<td>dmesg or kern.log</td>
<td>内核与驱动程序</td>
</tr>
<tr>
<td>cron</td>
<td>Cron 调度程序</td>
</tr>
<tr>
<td>httpd or apache2</td>
<td>Web 服务</td>
</tr>
<tr>
<td>maillog</td>
<td>邮件系统</td>
</tr>
<tr>
<td>secure or auth.log</td>
<td>安全审计日志</td>
</tr>
</tbody></table>
<h2 id="优先级"><a href="#优先级" class="headerlink" title="优先级"></a>优先级</h2><p>优先级表示消息的紧急程度，最低为<code>debug</code>，顾名思义，用来记录程序的调试信息，一般用来排错。最高级别为 <code>emerg</code>，表示系统无法继续运行而关机，由低到高为：</p>
<table>
<thead>
<tr>
<th>优先级</th>
<th>描述</th>
</tr>
</thead>
<tbody><tr>
<td>debug</td>
<td>调试信息</td>
</tr>
<tr>
<td>info</td>
<td>消息</td>
</tr>
<tr>
<td>notice</td>
<td>一般应关注</td>
</tr>
<tr>
<td>warning</td>
<td>警示</td>
</tr>
<tr>
<td>err</td>
<td>错误</td>
</tr>
<tr>
<td>crit</td>
<td>严重 Critical</td>
</tr>
<tr>
<td>alert</td>
<td>告警，需要立即处理</td>
</tr>
<tr>
<td>emerg</td>
<td>紧急 emergency，系统将不可用</td>
</tr>
</tbody></table>
<p>在一些旧系统中，可能会出现一些已经废弃的级别标识，如warn（同warning），panic（同emerg） ，error（同err）。</p>
<h2 id="设备标识"><a href="#设备标识" class="headerlink" title="设备标识"></a>设备标识</h2><p>设备标识用于对消息进行归类，设备标识为<code>mail</code>的消息会被放入电子邮件日志文件中，而标识 为<code>authpriv</code>的消息通常只有系统管理员可以访问。</p>
<table>
<thead>
<tr>
<th>Facility</th>
<th>Associated system</th>
</tr>
</thead>
<tbody><tr>
<td>auth</td>
<td>安全日志</td>
</tr>
<tr>
<td>authpriv</td>
<td>root专属的安全日志 (如用户登录信息)</td>
</tr>
<tr>
<td>cron</td>
<td>Cron 调度程序</td>
</tr>
<tr>
<td>daemon</td>
<td>系统消息</td>
</tr>
<tr>
<td>ftp</td>
<td>FTP 服务器</td>
</tr>
<tr>
<td>kern</td>
<td>内核</td>
</tr>
<tr>
<td>lpr</td>
<td>打印服务</td>
</tr>
<tr>
<td>mail</td>
<td>邮件系统</td>
</tr>
<tr>
<td>news</td>
<td>NNTP 系统 (Usenet)</td>
</tr>
<tr>
<td>syslog</td>
<td>Syslog 消息</td>
</tr>
<tr>
<td>user</td>
<td>User-level 用户消息</td>
</tr>
<tr>
<td>uucp</td>
<td>UUCP (old file copy protocol)</td>
</tr>
<tr>
<td>local0 to local7</td>
<td>用户自定义</td>
</tr>
</tbody></table>
<h2 id="工具"><a href="#工具" class="headerlink" title="工具"></a>工具</h2><h3 id="Logger"><a href="#Logger" class="headerlink" title="Logger"></a>Logger</h3><p>Logger程序提供向Syslog发送消息日志的功能。<br>使用方法</p>
<figure class="highlight shell"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="meta">$</span><span class="bash"> logger &lt;OPTIONS&gt; [MESSAGE]</span></span><br></pre></td></tr></table></figure>
<p>Logger的常用参数列表</p>
<table>
<thead>
<tr>
<th>选项</th>
<th>描述</th>
</tr>
</thead>
<tbody><tr>
<td>-p</td>
<td>指定设备标识和优先级，格式为 priority 或 facility.priority. 默认值是“user.notice”</td>
</tr>
<tr>
<td>-n</td>
<td>将消息记录到远程服务器上而不是本地</td>
</tr>
<tr>
<td>-t</td>
<td>为消息添加一个标签（(默认值为当前运行Logger的用户名）</td>
</tr>
<tr>
<td>-f</td>
<td>从指定文件读取消息</td>
</tr>
</tbody></table>
<p>例如：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ logger -t SYSLOAD -p user.info -n logs.example.com System load is low</span><br></pre></td></tr></table></figure>

<h3 id="Logrotate"><a href="#Logrotate" class="headerlink" title="Logrotate"></a>Logrotate</h3><p>logrotate 用于控制应用程序的日志文件大小，通过对文件定期清理，防止日志文件过大而占满磁盘，如果程序自带日志文件而不是使用syslog记录，那么将如何定期清理日志文件的相关配置放入Logrotate的配置目录中：</p>
<figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">/etc/logrotate.d</span><br></pre></td></tr></table></figure>
<p>配置文件的格式和使用方法可以参考文件 <code>/etc/logrotate.conf</code>中的说明。</p>

        </div>

        
            <section class="post-copyright">
                
                    <p class="copyright-item">
                        <span>文章作者:</span>
                        <span>Liux</span>
                    </p>
                
                
                
                    <p class="copyright-item">
                        <span>许可方式:</span>
                        <span>Copyright (c) 2019 <a href="http://creativecommons.org/licenses/by-nc/4.0/" target="_blank" rel="noopener">CC-BY-NC-4.0</a> LICENSE</span>
                    </p>
                
                

            </section>
        

        <section class="post-nav">
            
                <a class="prev" rel="prev" href="/2019/12/27/pipyserver-usage/">使用 pypiserver 架设私有的pypi服务器</a>
            
            
            <a class="next" rel="next" href="/2019/11/20/hello-world/">Hello World</a>
            
            <a class="back" href="javascript:window.history.back();">退回</a>
        </section>
    </article>
</div>

        </div>
        <footer id="footer" class="footer">
    <div class="copyright">
        <span>© Liux | Powered by <a href="https://hexo.io" target="_blank">Hexo</a></span>
    </div>
</footer>

    </div>
</body>
</html>
